-
Notifications
You must be signed in to change notification settings - Fork 82
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
CI build by github actions #42
Conversation
Thanks! Did it work on your pipeline? I see 6 failing checks here. :-) |
@misery As written above the builds which are mentioned as NOK (Not OK) also fail on my side. I would consider this PR as a starting point if this is of interest and start with adding the working once and further work on the failing ones. |
5a774c3
to
4289bfd
Compare
22e729e
to
d964e74
Compare
91762f3
to
d226849
Compare
What do you think about commenting the currently not working ones, then pull this in and have a separate PR for each of the failing ones? Currently there are none of those CI builds, so the ones that work are already much better than nothing and concentrating on enabling a single one is likely more productive, too. |
I will add any working action. :-) |
Thanks for the update. Two failing actions left, which miss some qt6 dependencies and should afterwards pass. |
aa50f64
to
2271e1b
Compare
@GitMensch |
So sudo apt update and all is fine?
|
253891e
to
b4d9a4c
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
After that... please squash the commits
.github/workflows/CI_build_libs.yml
Outdated
|
||
- name: Install packages via apt | ||
run: | | ||
sudo apt-get update -qq && sudo apt install -y cmake pkg-config libssl-dev libudev-dev libhttp-parser-dev libpcsclite-dev libgl1-mesa-dev libdbus-1-dev libclang-15-dev libclang-13-dev ninja-build |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
libssl-dev libudev-dev libhttp-parser-dev libpcsclite-dev shouldn't be needed for an Android build. Also libclang-15/13 ... that should be in Android NDK.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
For compilation of the QT host tools I think they are needed. Regarding Clang 13/14/15 see below.
.github/workflows/CI_build_libs.yml
Outdated
|
||
- name: Install packages via apt | ||
run: | | ||
sudo apt-get update -qq && sudo apt install -y cmake pkg-config libssl-dev libudev-dev libhttp-parser-dev libpcsclite-dev libgl1-mesa-dev libdbus-1-dev libclang-15-dev libclang-13-dev ninja-build |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
why libclang15 and 13?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
See https://github.com/actions/runner-images/blob/main/images/ubuntu/Ubuntu2204-Readme.md. Clang 13, 14 and 15 is available and it seems it is not always stable which one is found by the QT build.
Needed to avoid issue similar to:
CMake Warning (dev) at /home/runner/work/AusweisApp/AusweisApp/_build/b/src/qt-build/qtbase/lib/cmake/Qt6Qml/Qt6QmlBuildInternals.cmake:404 (message):
INSTALL_SOURCE_QMLTYPES option is deprecated and should not be used.
Please port your module to use declarative type registration.
Call Stack (most recent call first):
qtwebsockets/src/imports/qmlwebsockets/CMakeLists.txt:4 (qt_internal_add_qml_module)
This warning is for project developers. Use -Wno-dev to suppress it.-- Configuring submodule 'qtscxml'
-- Configuring submodule 'qtactiveqt'
-- Configuring submodule 'qttools'
CMake Error at /usr/lib/llvm-14/lib/cmake/clang/ClangTargets.cmake:750 (message):
The imported target "clangBasic" references the file"/usr/lib/llvm-14/lib/libclangBasic.a"
but this file does not exist. Possible reasons include:
The file was deleted, renamed, or moved to another location.
An install or uninstall procedure did not complete successfully.
The installation package was faulty and contained
"/usr/lib/llvm-14/lib/cmake/clang/ClangTargets.cmake"
but not all the files it references.
Call Stack (most recent call first):
/usr/lib/cmake/clang-14/ClangConfig.cmake:19 (include)
qttools/cmake/FindWrapLibClang.cmake:17 (find_package)
qtbase/cmake/QtFindPackageHelpers.cmake:147 (find_package)
qttools/configure.cmake:20 (qt_find_package)
qtbase/cmake/QtFeature.cmake:592 (include)
qttools/src/CMakeLists.txt:18 (qt_feature_evaluate_features)-- Configuring incomplete, errors occurred!
run: | | ||
cmake --build ${{ env.BUILD_DIR_LIBS }} --config ${{ matrix.build_configuration }} | ||
|
||
# - name: generate cmake |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
remove comment please... let's create a PR after this
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@misery Did I get you right that the known failing parts should be active to see the problems or should I remove that parts for the PR and create a new one? I think you mean the second option.
run: | | ||
cmake -G "${{ matrix.build_platform }}" -DCMAKE_BUILD_TYPE="${{ matrix.build_configuration }}" -DCMAKE_PREFIX_PATH=./_build_libs/dist -B ${{ env.BUILD_DIR_APP }} | ||
|
||
# due to https://bugreports.qt.io/browse/QTBUG-117765 QT 6.5.3 fails |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
remove comment please... let's create a PR after this
cmake --build ${{ env.BUILD_DIR_LIBS }} --config ${{ matrix.build_configuration }} | ||
cmake --install ${{ env.BUILD_DIR_LIBS }} | ||
|
||
# - name: generate cmake |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
remove comment please... let's create a PR after this
|
||
- name: Install packages via apt | ||
run: | | ||
sudo apt-get update -qq && sudo apt install -y cmake pkg-config libssl-dev libudev-dev libhttp-parser-dev libpcsclite-dev libgl1-mesa-dev libdbus-1-dev libclang-15-dev libclang-13-dev ninja-build |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
see beneath
.github/workflows/CI_build.yml
Outdated
run: | | ||
ctest --test-dir _build --output-on-failure -C "${{ matrix.build_configuration }}" | ||
|
||
# build_ios: |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
remove comment, please
.github/workflows/CI_build.yml
Outdated
run: | | ||
ctest --test-dir _build --output-on-failure -C "${{ matrix.build_configuration }}" | ||
|
||
# build_linux_android: |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
see beneath
.github/workflows/CI_build.yml
Outdated
- name: Install Qt | ||
uses: jurplel/install-qt-action@v3 | ||
with: | ||
version: '6.5.*' | ||
modules: 'qtscxml qtwebsockets qtshadertools qtconnectivity' | ||
setup-python: 'false' |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yes, if we use a combined build there is no need for a separate lib build job.
Strange error. Did you just Multi-Config Ninja Genereator somewhere? Maybe you could remove --config Release as it is needed for Multi-Config only.
2a9ff8f
to
3730290
Compare
first thanks for the docker container. Very usefull for end2end testing. Are you aware of issues with docker tag We noticed that our CI builds are failing with SAML checks with 2.1.0, but with 2.0.0 they work |
Do you mean the official Container SDK? If you have an issue please report this to |
no, we using the docker image for verifying our login process for the identity card. |
If you mean this: https://hub.docker.com/r/governikus/ausweisapp2 ... please report to the mail address above. |
FYI: With latest 2.1.1 docker image it's working again |
5a36ebc
to
e15cf57
Compare
2d1e225
to
6f7b2e1
Compare
As everything is building again now... @chcg can you please squash the commits with a reasonable commit message for the addition of the CI builds? I think this is the only outstanding request from @misery, so we may be able to get this PR finally merged and be able to then go on with possible adjustments like more environments, maybe ccache backed up GH caching, debug builds to run ctest, at least for some environments... anything else? |
- requested changes to use cmake --install - added combined action with lib and app build - Fixed codeql.yml apt failure and update to v3 CI builds of desktop versions (against prebuild QT packages): - windows msvc x64 (NOK, qt build issue, commented out) - linux gcc x64 - macos clang CI builds of smartphone versions: - linux android (NOK, cmake config issue, commented out) - macos ios (NOK, cmake config issue, commented out) CI builds of openssl, qt libs: - windows msvc x64 - linux gcc x64 - macos clang CI builds of smartphone versions: - linux android - macos ios
@GitMensch Another squash done. |
Thanks a lot for this and sorry for that massive delay. |
Thanks for the final merge and @chcg: quite impressive that you came back to this again and again. |
@GitMensch Sorry, but we won't accept publishing of those artifacts from our repository. It would be too confusing for most people about "official releases". |
Even if you only find the artifacts via the actions tab / CI runs? How does that confuse people [even an "extended" variant that pushes the release to a "continous pre-release only available when manually opening it in GitHub" seems to be not that confusing...]? Do you plan to include the additional binaries built in the upcoming releases or would you still consider them "best to either be compiled locally or created with a manual fork + action run"? |
I don't see additional binaries here. What do you mean? If you want an artifact build from github action you can fork the repository. |
If I didn't miss something this CI produces the following builds that are not in the release page yet:
plus Windows without msi (possible package as .zip) ... and yes, I do understand the "no guarantees" part (but then, continuous build artifacts are per definition for testing purposes, not for general use) |
Please comment what is of interest from your point of view, so I could modify the PR to the relevant once (comment out or remove).
Just used release builds. For debug builds also the ctests are running but for no target they are completely working and therefore not added here.
CI builds of desktop versions (against prebuild QT packages):
CI builds of smartphone versions:
CI builds of openssl, qt libs + ausweisapp with this libs:
CI builds of smartphone versions: